#include <stdio.h>
#include <stdlib.h>

#define ERROR -1
typedef int ElementType;
typedef struct LNode *PtrToLNode;
struct LNode {
    ElementType Data;
    PtrToLNode Next;
};
typedef PtrToLNode List;

List Read(); /* 细节在此不表 */

ElementType FindKth( List L, int K );

int main()
{
    int N, K;
    ElementType X;
    List L = Read();
    scanf("%d", &N);
    while ( N-- ) {
        scanf("%d", &K);
        X = FindKth(L, K);
        if ( X!= ERROR )
            printf("%d ", X);
        else
            printf("NA ");
    }
    return 0;
}
// L是给定单链表，函数FindKth要返回链式表的第K个元素。如果该元素不存在，则返回ERROR
ElementType FindKth( List L, int K ) {
    //思路：首先辨别是否是带有头结点的单链表  ：如果题目中不直接给出那么就会默认是没有表头的
    // 特殊情况：L为空 K不合理（利用排除法找出符合答案的，其余的则直接返回ERROR）
    int count = 1;
    PtrToLNode curPoint = L;
    for (; curPoint; curPoint = curPoint->Next, ++count) {
        if (count == K) {
            return curPoint->Data;
        }
        
    }
    return ERROR;
}
// ElementType FindKth( List L, int K ) {
//     if (K < 1 ) {
//         return ERROR;//稍微高效一点
//     }
//     int count = 1;
//     PtrToLNode curPoint = L;
//     for (; curPoint; curPoint = curPoint->Next, ++count) {
//         if (count == K) {
//             return curPoint->Data;
//         }
//     }
//     return ERROR;
// }